問題解説: IPv6 実技
問題文
背景
あなたは今、とあるネットワークに参加しています。
このネットワークはIPv6で構成されていて、あなた以外にも不特定多数のユーザーが参加しています。
このネットワークには管理者によって1台のルーターが設置されていて、ユーザーはネットワークに参加すると自動でIPアドレスが設定されるようになっています。
このルーターは別のIPv6ネットワークにも繋がっていて、そこには1台のサーバーが動いていて、ルーターは2つのセグメント間を繋げています。
本来なら、あなたはルーターを経由して別セグメントにあるサーバーにアクセスできるのですが、なぜかできません。
※ この世は性善説で成り立っているわけではありません
問題
このネットワークは下記の画像の用になっています。
あなたはクライアント1です。
IPv6セグメント1には複数の端末が繋がっていますが、あなたが操作できるのはクライアント1とルーターのみです。
踏台サーバーはマネジメントセグメントでルーターとクライアント1に繋がっていてIPv4でsshできます。
IPv6セグメントに繋がっている端末は自動でIPv6アドレスが設定されます。
クライアント1とルーターは設定変更や再起動など自由にして構いません。
クライアント1からサーバーにpingが通らない原因を調査し、報告してください。
正常に通信できるようにする必要はありません。
情報
ssh用のIPv4アドレスは図にある通り
- ルーター: 192.168.0.1/24
- クライアント1: 192.168.0.2/24
ルーターとクライアント1のユーザー名とパスワード(共通)
- ユーザー名: admin
- パスワード: ipvvvvvv
サーバーのIP確認方法
- ルーターにログインし、運営が予め用意したtargetコマンドを実行する
- 注) コマンド実行時に補完しようとするとエラーがでますが実行はできます
例)
admin@vyos:~$ target
fd00:2::9999:8888:7777:6666
捕捉、注意等
環境破壊やシャットダウンしてしまった場合
- メールで知らせてください
- 減点はありませんが、復旧に時間がかかる場合があります
ゴール
この問題のゴールはクライアント1からサーバーに疎通が取れない原因を調査し報告することです。
トラブルの概要
IPv6ネットワークが用意されていて、そこでクライアントからサーバーに通信したいがなぜか疎通が取れない。
その原因を調べるという問題でした。
解説
この問題はざっくり言うとDHCP snoopingのRA版です。
実際には以下の図のように競技者が操作するクライアント1の他にもう一台、クライアント2(仮称)があります。
実はこのクライアント2がただのクライアントではなく悪意のあるルーターになっていて、ルーターと同じようにRouter Advertisement(以下RA)を流しています。
ただし、悪意のあるルーターが流すRAは正規のルーターのRAより優先度が高くなっています。
そのため、クライアント1がマルチキャストでRouter Solicitation(以下RS)を送り、両方のルーターからRAが帰って気た場合、優先度の高い悪意のあるルーターのRAが使われてしまい、IPv6のデフォルトゲートウェイが悪意のあるルーターになります。
クライアント1がサーバーと通信するために、正規のルーターにパケットを送ったつもりが、悪意のあるルーターにパケットが行ってしまうためサーバーとの疎通が取れないというわけです。
解答例
原因の調査手順としては以下です。
- pingを送る -> 通らない
- tracerouteのネクストホップとルーターのアドレスが違うことに気づく
- IPv6セグメント1で ip neigh を確認しルーターとクライアント1以外にも端末(クライアント2)があることに気づく
- tracerouteのネクストホップがクライアント2なことに気づく
- クライアント1のルーティングを確認する -> デフォルトゲートウェイがRAになっている
上記の1~6をまとめて「ルーターでは無いところにパケットを飛ばしてる」ことが明記されていれば50%です。
その後パケットを見るなどしてLAN内にクライアント2が存在することと、RAを流していることを明記すると50%です。
採点基準
大まかな採点基準は以下です。
1. tracerouteでパケットがルーターでは無いところに送られていることを明記する 50%
2. パケットキャプチャし、LAN内に悪意のあるルーターがありRAが流れてきていることを明記する 50%
惜しい所まで書かかれている解答には適宜、部分点を付けました。
問題文に「原因を調査し、報告してください」と書いてあるので原因について明記されていない場合は減点しました。
講評
この問題はIPv6をちょっと触って欲しい、RAによるステートレスアドレス自動設定(SLAAC)を知って欲しいという意図で出しました。
その上でIPv6のRA関連のトラブルってなんだろうなー と考えたとき思いついたのが偽RAです。
問題の性質上、後半でどうしてもエスパー感が出てしまうのでLAN内に悪意のある端末があるヒントとして問題文に「この世は性善説で成り立っているわけではありません」と記述しました。
最高得点は70%(245点)で、残念ながら満点はいませんでした。
50%のボーダーを超えたのは3チームです。
大半の解答が0点となりましたが、その理由の多くは「問題文を読んでない」、「出力の勘違い」、「明記してない」です。
普段使うツールでもIPv6の表記に慣れていないため、コマンドの出力結果を読み間違えたような解答がちらほらと見受けられました。